<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <input type="text" name="username">
    <script>
        /* 
            *   前面一位字符  0个  1个 或者 多个
            +   前面一位字符  至少一个
            ?   前面一位字符  0个或者1个 不能其它情况了
            {n}  前面一位字符  必须n个
            {n,}  前面一位字符  至少n个 多多不限
            {n,m}  前面一位字符   最少n 最多m个 

            贪婪    
            惰性 
            贪婪+? = 惰性模式  
        
        
        */

        // 11位  第一位 1 第二位 3-9 第三-第11  0~9任意一个  \d{9} 

        // ^1[3-9]\d{9}$
        // var reg = /\d*/; 
        // 它前面的一个内容 0 个 1 个  多个 
        // 只要有0个数字  1个数字  都满足要求  

        // var strs = '';
        // var strs = 'abc';
        // var strs = 'abc1';
        // var strs = 'abc121212112121212';

        // alert(reg.test(strs)) 上面都是true


        // var reg = /\d+/; 
        // // 前面的内容 
        // // var strs = 'abc121212112121212'; // true
        // // var strs = 'abc1'; // true
        // var strs = 'abc'; // false 
        // // 字符串中至少有一个是数字 结果才是true 



        // 


        // alert(reg.test(strs))

        // var reg = /^\d?$/;
        // 前面的内容 
        // var strs = '1'; // 1重复了0次 开头结尾是数字  满足要求  
        // var strs = ''; // 从开头到结尾  0个或者1个数字  满足要求 

        // //上面满足情况的 就这两种  
        // var reg = /\d?/;
        // var strs = 'abc123456';
        // // a 是个字符  满足 0个或者1个数字要求

        // // 贪婪模式  和 惰性模式   
        // // 默认贪婪的  
        // // 贪婪+? 变成了惰性模式   
        // // 第一个满足要求  返回true  不满足直接false 
        // alert(reg.test(strs));// true 

        // var reg = /^\d?$/;
        // var strs = '123';
        // // 跟上面不同的是  这个从头到尾  上面 只看第一位 
        // alert(reg.test(strs));// false 
        // var reg = /\d?/;
        // // 1 
        // var strs = 'a111'; // 这是个惰性模式 只看第一位 
        // // a 字母  满足 数字出现了0次或者1次 
        // // var strs = '111';

        // // 跟上面不同的是  这个从头到尾  这个 只看第一位 
        // alert(reg.test(strs));// true 


        // var reg = /^\d?/;
        // // 开头必须是0个或者1个数字  
        // var strs = 'a111';
        // alert(reg.test(strs));// true



        // var reg = /^1\d?$/;

        // // var strs = '1a';
        // var strs = '18';// 


        // alert(reg.test(strs));



        // {n} 前面的字符 必须是 n个  [n] 
        // {n,m} 最少n 最多m  [n,m]
        // {n,} [n,]

        // var reg = /go{6}d/;
        // var strs = 'goooooooooood';// gd中间 必须6个o 多一个少一个都不行 


        // alert(reg.test(strs));


        // var reg = /go{6,}d/;
        // var strs = 'goooooooooood';// gd中间至少 6个 o 多了不限 


        // alert(reg.test(strs)); //true 


        // var reg = /go{6,30}d/;
        // // var strs = 'goood';// gd中间至少 6个最多30 
        // // 低于6或者高于30都不可以 
        // var strs = 'goooooooooooooooooooooooooooooooooooooooooood';// gd中间至少 6个 o 多了不限 



        // alert(reg.test(strs)); //true 

        // a-z A-Z 0-9 _ 
        // var  username = prompt('请输入用户名:');
        // var reg = /\w{6,30}/;
        // if(reg.test(username)){
        //     alert('用户名合法')
        // }
        // else{
        //     alert('用户名不满足要求')
        // }


        // var inp = document.querySelector('input');
        // inp.onblur = function () {
        //     var v = inp.value;
        //     var reg = /\w{6,30}/;
        //     if (reg.test(v)) {
        //         alert('用户名合法')
        //     }
        //     else {
        //         alert('用户名不满足要求')
        //     }

        // }

    </script>
</body>

</html>